<%@page contentType="text/html" pageEncoding="ISO-8859-1"%>

<%@ page import="IT.DataAccess.IDatEmpleado" %>
<%@ page import="IT.DataAccess.DatEmpleado" %>
<%@ page import="IT.Entities.Empleado" %>

<%@ page import="IT.DataAccess.IDatProyectoActividad" %>
<%@ page import="IT.DataAccess.DatProyectoActividad" %>
<%@ page import="IT.Entities.ProyectoActividad " %>

<%@ page import="IT.Helper.Helper" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>

<%@ page import="java.sql.Date" %>
<%@ page import="java.math.BigDecimal" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">        
        <%@include file="MasterTitulo.jsp"%>
        <link type="image/x-icon" href="favicon.ico" rel="icon" />
        <link type="image/x-icon" href="favicon.ico" rel="shortcut icon" />
        <link rel="stylesheet" href="style.css" type="text/css" media="screen" />
        <link type="text/css" href="css/smoothness/jquery-ui-1.8.16.custom.css" rel="stylesheet" />
        <!--[if IE 6]><link rel="stylesheet" href="style.ie6.css" type="text/css" media="screen" /><![endif]-->
        <!--[if IE 7]><link rel="stylesheet" href="style.ie7.css" type="text/css" media="screen" /><![endif]-->
        <script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
        <script type="text/javascript" src="script.js"></script>
        <script type="text/javascript" src="js/date.js"></script>
        <script type="text/javascript" src="js/jquery.ui.core.js"></script>
        <script type="text/javascript" src="js/jquery.ui.datepicker.js"></script>
        <script type="text/javascript" src="js/jquery.ui.datepicker-es.js"></script> 
        <script type="text/javascript" src="js/highcharts.js"></script>
        <script type="text/javascript" src="js/modules/exporting.js"></script>
        <script type="text/javascript">            
            $(function() {
                var dates = $( "#txtFInicio, #txtFFin" ).datepicker({
                    showOn: 'both',
                    buttonImage: 'images/calendar.gif',			
                    buttonImageOnly: true,
                    changeMonth: true,
                    changeYear: true,
                    numberOfMonths: 1,
                    showOtherMonths: true,
                    selectOtherMonths: true,
                    onSelect: function( selectedDate ) {
                        var option = this.id == "txtFInicio" ? "minDate" : "maxDate",
                        instance = $( this ).data( "datepicker" ),
                        date = $.datepicker.parseDate(
                        instance.settings.dateFormat ||
                            $.datepicker._defaults.dateFormat,
                        selectedDate, instance.settings );
                        dates.not( this ).datepicker( "option", option, date );
                    }
                });
                $.datepicker.setDefaults($.datepicker.regional['es']);
            });     
        </script>
    </head>
    <body>
        <div id="art-main">
            <div class="art-sheet">
                <div class="art-sheet-tl"></div>
                <div class="art-sheet-tr"></div>
                <div class="art-sheet-bl"></div>
                <div class="art-sheet-br"></div>
                <div class="art-sheet-tc"></div>
                <div class="art-sheet-bc"></div>
                <div class="art-sheet-cl"></div>
                <div class="art-sheet-cr"></div>
                <div class="art-sheet-cc"></div>
                <div class="art-sheet-body">
                   <%@include file="MasterLogo.jsp"%>
                    <div class="art-content-layout">
                        <div class="art-content-layout-row">
                            
                            <div class="art-layout-cell art-content">
                                <div class="art-post">
                                    <div class="art-post-body">
                                        <div class="art-post-inner art-article">
                                            <!--Datos-->
                                  <%@include file="MasterDatos.jsp"%>
                                            <div style="padding-top:10px;padding-bottom:5px;padding-left:10px;font-size:18px">Reporte de Productividad de Personal</div>
                                            <div style="background-image: url('images/linea.jpg');background-repeat:repeat-x;height:10px"></div>
                                            <% Helper oHelper = new Helper();
            String cMensaje, cAccion;
            boolean bFecha = false;
            Date dInicio, dFin;
            cMensaje = "";
            IDatEmpleado oDatEmpleado = new DatEmpleado();
            List<Empleado> oListaEmpleado = new ArrayList<Empleado>();

            oListaEmpleado = oDatEmpleado.Listar();

            List<ProyectoActividad> oLista = new ArrayList<ProyectoActividad>();
            IDatProyectoActividad oDatAct = new DatProyectoActividad();

            if (request.getParameter("btnAccion") != null) {
                cAccion = request.getParameter("btnAccion");

                if (cAccion.trim().equals("Buscar")) {

                    if (request.getParameter("chkFecha") != null) {
                        bFecha = true;
                    }

                    dInicio = oHelper.crearFecha(request.getParameter("txtFInicio"));
                    dFin = oHelper.crearFecha(request.getParameter("txtFFin"));

                    if (dInicio == null || dFin == null) {
                        cMensaje = "<li>Error al ingreso de fechas</li>";
                    }

                    if (cMensaje.trim().length() == 0) {
                        oLista = oDatAct.Todos(bFecha, dInicio, dFin);
                    }
                }

            } else {
                oLista = oDatAct.Todos(true, oHelper.getdFechaActual(), oHelper.getdFechaActual());
            }

            int nCantidadActividad, nCantidadTiempoActividad, nCantidadAtrasoActividad, nCantidadNoRealizadoActividad;
            nCantidadActividad = 0;
            nCantidadTiempoActividad = 0;
            nCantidadAtrasoActividad = 0;
            nCantidadNoRealizadoActividad = 0;
            boolean bRegistro = false;
            int nEstadoPredecesor = 0;
            String cEmpleado = "", cData = "", cDataAsig = "", cDataCumplidas = "", cDataCumplidasP = "", cStyle = "", cStylePor = "";
            String cDataPorcentaje = "", cDataAtraso = "", cDataNoRealizado = "";
            for (Empleado ent : oListaEmpleado) {
                nCantidadActividad = 0;
                nCantidadTiempoActividad = 0;
                nCantidadAtrasoActividad = 0;
                nCantidadNoRealizadoActividad = 0;

                for (ProyectoActividad entActividad : oLista) {

                    if (ent.getCod_emp_in() == entActividad.getCod_emp_in()) {
                        //Aprobado  
                        if (entActividad.getEst_act_in() == 3) {

                            if (entActividad.getDia_act_in() >= 0) {
                                nCantidadTiempoActividad++;
                            } else {
                                nCantidadAtrasoActividad++;
                            }

                        }

                        //Pendiente
                        if (entActividad.getEst_act_in() == 1 || entActividad.getEst_act_in() == 2) {
                            bRegistro = true;
                            if (entActividad.getCod_ant_act_in() != 0) {//existe antecesor                                                      

                                if (nEstadoPredecesor != 2 && nEstadoPredecesor != 3 && nEstadoPredecesor != 4) {
                                    //cMensaje+="<li>No puede subir archivos, porque aun no se han desarrollado la actividad predecesora</li>";
                                    bRegistro = false;
                                } else {
                                    bRegistro = true;
                                }
                            }

                            if (bRegistro == true) {
                                nCantidadNoRealizadoActividad++;
                            }
                        }

                    }
                }
                nCantidadActividad = nCantidadNoRealizadoActividad + nCantidadTiempoActividad + nCantidadAtrasoActividad;
                ent.setNCantidadActividad(nCantidadActividad);
                ent.setNCantidadTiempoActividad(nCantidadTiempoActividad);
                ent.setNCantidadAtrasoActividad(nCantidadAtrasoActividad);
                ent.setNCantidadNoRealizadoActividad(nCantidadNoRealizadoActividad);

                //oListaEmpleado
                if (ent.getNCantidadActividad() != 0) {
                    cEmpleado += "'" + ent.getEmpleado() + "',";
                    cDataAsig += String.valueOf(ent.getNCantidadActividad()).trim() + ",";
                    cDataCumplidas += String.valueOf(ent.getNCantidadTiempoActividad()).trim() + ",";

                    cDataAtraso += String.valueOf(ent.getNCantidadAtrasoActividad()).trim() + ",";

                    cDataNoRealizado += String.valueOf(ent.getNCantidadNoRealizadoActividad()).trim() + ",";

                }
            }

            cStyle = ",dataLabels: {enabled: true,rotation: 0,color: '#000000',";
            cStyle += "align: 'center',x: 0,y: -5,formatter: function() {";
            cStyle += "return this.y;}}";

            cStylePor = ",dataLabels: {enabled: true,rotation: 0,color: '#000000',";
            cStylePor += "align: 'center',x: 0,y: -5,formatter: function() {";
            cStylePor += "var cData='';";
            cStylePor += "if(this.percentage!=0){";
            cStylePor += " cData=Math.round(this.percentage)+'%';";
            cStylePor += "}";
            cStylePor += "return cData; }}";
            
            if(cDataAsig.trim().length()!=0){
            cDataAsig = cDataAsig.substring(0, cDataAsig.trim().length() - 1);
            cDataAsig = "{name:'Tareas Asignadas', data: [" + cDataAsig + "]" + cStyle + "},";
            }
            
            if(cDataCumplidas.trim().length()!=0){
            cDataCumplidas = cDataCumplidas.substring(0, cDataCumplidas.trim().length() - 1);
            cDataCumplidasP = "{name:'En tiempo', data: [" + cDataCumplidas + "]" + cStylePor + "}";
            cDataCumplidas = "{name:'Tareas realizadas en tiempo', data: [" + cDataCumplidas + "]" + cStyle + "}";
            }

            cData = cDataAsig + cDataCumplidas;

            if(cDataAtraso.trim().length()!=0){
            cDataAtraso = cDataAtraso.substring(0, cDataAtraso.trim().length() - 1);
            cDataAtraso = "{name:'Atrasadas', data: [" + cDataAtraso + "]" + cStylePor + "}";
            }
            
            if(cDataNoRealizado.trim().length()!=0){
            cDataNoRealizado = cDataNoRealizado.substring(0, cDataNoRealizado.trim().length() - 1);
            cDataNoRealizado = "{name:'No Realizadas', data: [" + cDataNoRealizado + "]" + cStylePor + "}";
            }
            
            cDataPorcentaje = cDataNoRealizado.trim() + "," + cDataAtraso.trim() + "," + cDataCumplidasP.trim();
            
            if(cEmpleado.trim().length()!=0){
            cEmpleado = cEmpleado.substring(0, cEmpleado.trim().length() - 1);
            }
            //out.println(cEmpleado) ;
            //out.println("<br/>") ;
            //out.println(cDataPorcentaje) ;

            double nTiempo = 0, nAtraso = 0, nNorealizado = 0;

            BigDecimal d;
                                            %>
                                            <div style="padding-top:10px;padding-left:40px;">
                                                <form id="frmProductividad" name="frmProductividad" method="post" action="WebProductividad.jsp">                                           
                                                    <table border="0" cellpadding="2" cellspacing="2">
                                                        <tr>
                                                            <td>Fecha Asig.&nbsp;desde:<input type="text" id="txtFInicio"  name="txtFInicio" value="<%= oHelper.getFechaActual()%>" size="10" />&nbsp;
                                                                hasta:<input type="text" id="txtFFin" name="txtFFin" value="<%= oHelper.getFechaActual()%>" size="10" />&nbsp;
                                                                <input type="checkbox" name="chkFecha" value="1" />&nbsp;Sin Fechas&nbsp; 
                                                            </td>
                                                            <td><input type="submit" value="Buscar" name="btnAccion"/>&nbsp;&nbsp;&nbsp;<a href="WebProductividad.jsp" title="Ver todos">Ver Todos</a>
                                                            </td>
                                                        </tr>
                                                    </table>   
                                                </form>
                                            </div>
                                            
                                            <div style="padding-top:10px;padding-left:10px;">
                                                <table border="0" cellpadding="2" cellspacing="2">
                                                    <tr>
                                                        <td>Empleado</td>
                                                        <td>Tareas Asignadas</td>
                                                        <td>Tareas realizadas en tiempo</td>
                                                        <td>Tareas realizadas con atraso</td>
                                                        <td>Tareas no realizadas</td>
                                                        <td>% en tiempo</td>
                                                        <td>% atraso</td>
                                                        <td>% no realizadas</td>
                                                    </tr>
                                                    <%for (Empleado ent : oListaEmpleado) {
                nTiempo = 0d;
                nAtraso = 0d;
                nNorealizado = 0d;
                if (ent.getNCantidadActividad() != 0) {
                    nTiempo = ((ent.getNCantidadTiempoActividad() / (double) ent.getNCantidadActividad()) * 100d);
                    nAtraso = ((ent.getNCantidadAtrasoActividad() / (double) ent.getNCantidadActividad()) * 100d);
                    nNorealizado = ((ent.getNCantidadNoRealizadoActividad() / (double) ent.getNCantidadActividad()) * 100);
                }
                                                    %>
                                                    <tr>
                                                        <td><%= ent.getEmpleado()%></td>
                                                        <td><%= ent.getNCantidadActividad()%></td>
                                                        <td><%= ent.getNCantidadTiempoActividad()%></td>                                              
                                                        <td><%= ent.getNCantidadAtrasoActividad()%></td>
                                                        <td><%= ent.getNCantidadNoRealizadoActividad()%> </td>
                                                        <% d = new BigDecimal(nTiempo);%>
                                                        <td><%= d.setScale(2, BigDecimal.ROUND_DOWN).toString()%></td>
                                                        <% d = new BigDecimal(nAtraso);%>
                                                        <td><%= d.setScale(2, BigDecimal.ROUND_DOWN).toString()%></td>
                                                        <% d = new BigDecimal(nNorealizado);%>
                                                        <td><%= d.setScale(2, BigDecimal.ROUND_DOWN).toString()%></td>                                              
                                                    </tr>
                                                    <%}%>
                                                </table>
                                            </div>               
                                             <% 
                                             if(cData.trim().length()!=0){%>
                                            <script type="text/javascript">
                
                                                var chart;
                                                $(document).ready(function() {
                                                    chart = new Highcharts.Chart({
                                                        chart: {
                                                            renderTo: 'container',
                                                            defaultSeriesType: 'column'
                                                        },
                                                        colors: [
                                                            '#89A54E', 
                                                            '#AA4643', 
                                                            '#89A54E', 
                                                            '#80699B', 
                                                            '#3D96AE', 
                                                            '#DB843D', 
                                                            '#92A8CD', 
                                                            '#A47D7C', 
                                                            '#B5CA92'
                                                        ],
                                                        title: {
                                                            text: 'Tareas Asignadas Vs. Terminadas Puntualmente',
                                                            align: 'left'
                                                        },
                                                        subtitle: {
                                                            text: 'Gestor Productividad',  
                                                            align: 'left'
                                                        },
                                                        xAxis: {
                                                            categories: [<%= cEmpleado%>],
                                                                labels: {
                                                                    rotation: -45,
                                                                    align: 'right'
                                                                }
                                                            },
                                                            yAxis: {
                                                                min: 0,
                                                                title: {
                                                                    text: 'Tareas'
                                                                },
                                                                stackLabels: {
                                                                    enabled: true,
                                                                    style: {
                                                                        fontWeight: 'bold',
                                                                        color: 'gray'
                                                                    }
                                                                }
                                                            },
                                                            legend: {
                                                                layout: 'vertical',
                                                                backgroundColor: '#FFFFFF',
                                                                align: 'left',
                                                                verticalAlign: 'top',
                                                                x: 100,
                                                                y: 70,
                                                                floating: true,
                                                                shadow: true
                                                            },
                                                            tooltip: {
                                                                formatter: function() {
                                                                    return ''+
                                                                        this.x +': '+ this.y +' tareas';
                                                                }
                                                            },
                                                            plotOptions: {
                                                                column: {
                                                                    pointPadding: 0.1,
                                                                    borderWidth: 0
                                                                }
                                                            },
                                                            series: [<%= cData%>]
                                                            });
                                
                                
                                                        });
                                
                                            </script>
                                            <div style="padding-top:10px;padding-bottom:10px;overflow:auto; overflow-x:scroll;overflow-y:hidden; width:99%;height: auto;">   
                                                <div id="container" style="width: 600px;height: 600px;margin: 0 auto"></div>
                                            </div>
                                             <% } %>
                                            <% if(cDataPorcentaje.trim().length()!=0){ %>
                                            <script type="text/javascript">
                
                                                        var chart;
                                                        $(document).ready(function() {
                                                            chart = new Highcharts.Chart({
                                                                chart: {
                                                                    renderTo: 'containerPorcentaje',
                                                                    defaultSeriesType: 'column'
                                                                },
                                                                colors: [
                                                                    '#FFFF00', 
                                                                    '#AA4643', 
                                                                    '#89A54E', 
                                                                    '#80699B', 
                                                                    '#3D96AE', 
                                                                    '#DB843D', 
                                                                    '#92A8CD', 
                                                                    '#A47D7C', 
                                                                    '#B5CA92'
                                                                ],
                                                                title: {
                                                                    text: 'Efectividad en Cumplimiento de Tareas',
                                                                    align: 'left'
                                                                },
                                                                subtitle: {
                                                                    text: 'Gestor Productividad',  
                                                                    align: 'left'
                                                                },
                                                                xAxis: {
                                                                    categories: [<%= cEmpleado%>]
                                                                    },
                                                                    yAxis: {
                                                                        min: 0,
                                                                        title: {
                                                                            text: 'Porcentaje(%)'
                                                                        }
                                                                    },
                                                                    legend: {
                                                                        layout: 'vertical',
                                                                        backgroundColor: '#FFFFFF',
                                                                        align: 'left',
                                                                        verticalAlign: 'top',
                                                                        x: 100,
                                                                        y: 70,
                                                                        floating: true,
                                                                        shadow: true
                                                                    },
                                                                    tooltip: {
                                                                        formatter: function() {
                                                                            return ''+
                                                                                this.series.name +': '+ this.y +' ('+ Math.round(this.percentage) +'%)';
                                                                        }
                                                                    },
                                                                    plotOptions: {
                                                                        column: {
                                                                            stacking: 'percent',
                                                                            dataLabels: {
                                                                                enabled: true,
                                                                                color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white'
                                                                            }
                                                                        }
                                                
                                                                    },
                                                                    series: [<%= cDataPorcentaje%>]
                                                                    });
                                
                                
                                                                });
                                
                                            </script>
                                            
                                            <div style="padding-top:20px;padding-bottom:10px;overflow:auto; overflow-x:scroll;overflow-y:hidden; width:99%;height: auto;">   
                                                <div id="containerPorcentaje" style="width: 600px;height: 600px;margin: 0 auto"></div>
                                            </div>
                                            <%}%>
                                            <br/><br/>
                                            <div class="cleared"></div>
                                        </div>
                                        <div class="cleared"></div>
                                    </div>
                                </div>
                                
                                <div class="cleared"></div>
                            </div>
                        </div>
                    </div>
                    <div class="cleared"></div>
                    <div class="art-footer">
                        <div class="art-footer-t"></div>
                        <div class="art-footer-l"></div>
                        <div class="art-footer-b"></div>
                        <div class="art-footer-r"></div>
                        <div class="art-footer-body">
                            <div class="art-footer-text">
                                <p><a href="#">Link1</a> | <a href="#">Link2</a> | <a href="#">Link3</a></p><p>Copyright &copy; 2011. All Rights Reserved.</p>
                            </div>
                            <div class="cleared"></div>
                        </div>
                    </div>
                    <div class="cleared"></div>
                </div>
            </div>
            <div class="cleared"></div>       
        </div>     
        
    </body>
</html>
